#include "stm32f10x.h"                  // Device header
#include "Delay.h"

#define KEY_SWITCH_GPIO		GPIOB
#define KEY_SWITCH_Pin		GPIO_Pin_12
#define KEY_Mode_GPIO		GPIOB
#define KEY_Mode_Pin		GPIO_Pin_13

static uint8_t Switch_Num = 0;
static uint8_t Mode_Num = 0;

void Key_Init(void) {
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = KEY_SWITCH_Pin;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(KEY_SWITCH_GPIO, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Pin = KEY_Mode_Pin;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(KEY_Mode_GPIO, &GPIO_InitStructure);
}

uint8_t Get_Switch_Num (void) {
	if (GPIO_ReadInputDataBit(KEY_SWITCH_GPIO, KEY_SWITCH_Pin) == RESET) {
		Delay_ms(10);
		while(GPIO_ReadInputDataBit(KEY_SWITCH_GPIO, KEY_SWITCH_Pin) == RESET);
		Delay_ms(10);
		Switch_Num = 1;
	}
	uint8_t temp = Switch_Num;
	Switch_Num = 0;
	return temp;
}

uint8_t Get_Mode_Num (void) {
	if (GPIO_ReadInputDataBit(KEY_Mode_GPIO, KEY_Mode_Pin) == RESET) {
		Delay_ms(10);
		while(GPIO_ReadInputDataBit(KEY_Mode_GPIO, KEY_Mode_Pin) == RESET);
		Delay_ms(10);
		Mode_Num = Mode_Num + 1;
	}
	uint8_t temp = Mode_Num;
	if (Mode_Num == 3) Mode_Num = 0;
	return temp;
}


